$('document').ready
(
    function()
    {
		// 初始化“侦测移动开关”
		var check_moving_switch = 0;
		// 滑动按钮尺寸
		var slide_button_size = $('#slide_button_circle').width();
		// 滑动条尺寸
		var slide_bar_width = $('#slide_bar').width() - slide_button_size;
		var slide_bar_height = $('#slide_bar').height();
		// 初始化滑动条
		$('#slide_button_circle').css('left', slide_bar_width + 'px');
		$('#slide_bar_activity').css('width', (slide_bar_width + slide_button_size / 2) + 'px');
		// 初始化小时
		var hour = 8;
		$('#hours_show').text(hour + '小时');
		// 偏移量
		var offset = 0;
		var old_offset = slide_bar_width;
		// 初始化授权开关状态
		var switch_status = 0;
		// 初始化手动IP为0
        manual_IP = 0;
		// 计算授权开关两种状态的位置
		switch_off = $('#slide_block').css('left');
		switch_on = parseInt($('#slide_block').css('left')) + parseInt($('#slide_block').css('width')) + 'px';

		/* 监听按住有效期滑块 */
		$('#slide_button_circle').mousedown
		(
			function(event)
			{
				// 侦测移动开关
				check_moving_switch = 1;
				// 获取初始横坐标
				init_position_x = event.pageX;
				// 防止选中文本
				return false;
			}
		);

		/* 监听松开有效期滑块 */
		$('body').mouseup
		(
			function(event)
			{
				// 侦测移动开关
				check_moving_switch = 0;
				// 记录旧偏移量
				old_offset = offset;
			}
		);

		/* 监听移动有效期滑块 */
		$('body').mousemove
		(
			function(event)
			{
				if(check_moving_switch)
				{
					// 获取当前横坐标
					now_position_x = event.pageX;
					// 计算偏移量
					offset = old_offset + now_position_x - init_position_x;
					if(offset < 0)
					{
						offset = 0;
					}
					if(offset > slide_bar_width)
					{
						offset = slide_bar_width;
					}
					// 按钮滑动
					$('#slide_button_circle').stop(true).animate({left: offset + 'px'}, 0);
					// 进度条变色
					$('#slide_bar_activity').css('width', (offset + slide_button_size / 2) + 'px');
					// 计算小时
					hour = parseInt(offset / slide_bar_width * 7) + 1;
					$('#hours_show').text(hour + '小时');
				}
			}
		);

		/* 监听用户变化 */
		$('select[name="user"]').change(
			function()
			{
				var user = $(this).val();
				// 根据用户名查询开关状态
				if(user == 'null')
				{
					// 隐藏授权开关
					show_hide_switch_area('hide');
				}
				else
				{
					// 显示授权开关
					show_hide_switch_area('show');
					// 获取该用户在当前IP下的开关状态
					$.post(
						URL + '/get_switch_status_by_user',
						{user: user},
						function(res)
						{
							res = JSON.parse(res);
							if(parseInt(res['status']) != 1)
							{
								 $('#return_msg').text(res.err_msg + '  （单击隐藏该通知）');
							}
							else
							{
								// 设定授权开关状态
								switch_status = parseInt(res['data']['switch_status']);
								switch(switch_status)
								{
									case 0:
										$('#slide_block').css('left', switch_off);
										break;
									case 1:
										$('#slide_block').css('left', switch_on);
										break;
								}
							}
						}
					);
				}
			}
		);

		/* 显示/隐藏授权开关 */
		function show_hide_switch_area(type)
		{
			switch(type)
			{
				case 'show':
					$('#remote_switch_area').css(
						{
							'display': 'table-row',
							'opacity': 1
						}
					);
					break;
				case 'hide':
					$('#remote_switch_area').css(
						{
							'display': 'none',
							'opacity': 0
						}
					);
					break;
			}
		}

        /* 监听点击授权开关 */
		$('#slide_block').click
        (
            function()
            {
				// 获取用户
				var user = $('select[name="user"]').val();
				// 修改开关状态
				switch_status_new = Number(!switch_status);
				// 组装数据
				var post_data = {
					user: user,
					switch_status: switch_status_new,
					hour: hour
				}
				if(manual_IP)
                {
					post_data['REMOTE_ADDR'] = $('#manual_IP_val').val();
                }
                // 提交至接口
                $.post
                (
					HOST_NAME + MODULE + '/remote_switch',
                    post_data,
                    function(data)
                    {
						data = JSON.parse(data);
                        if(data.status == 1)
                        {
                            $('#return_msg').removeClass('fail');
                            $('#return_msg').addClass('success');
                        }
                        else
                        {
                            $('#return_msg').removeClass('success');
                            $('#return_msg').addClass('fail');
                        }
                        $('#return_msg').text(data.err_msg + '  （单击隐藏该通知）');
                        // 显示操作结果
                        $('#return_msg').stop().animate({'opacity': '1'}, 350);
                        // 判断执行结果：执行成功
                        if(data.status == 1)
                        {
                            // 获取新的开关状态
                            switch_status = data.data.switch_status;
							if(switch_status)
                            {
                                // 开关处于打开状态
                                $('#slide_block').animate({left: switch_on}, 500);
                            }
                            else
                            {
                                // 开关处于关闭状态
                                $('#slide_block').animate({left: switch_off}, 500);
                            }
                        }
                        // 判断执行结果：无法自动获取IP
                        if(data.status == 2)
                        {
                            manual_IP = 1;
                            $('#remote_IP_manual').css('display', 'table-row');
                            $('#remote_IP_manual').animate({opacity: '1'}, 400);
                        }
                    }
                );
            }
        );

        /* 单击隐藏通知 */
        $('#return_msg').click
        (
            function()
            {
                $('#return_msg').stop().animate({opacity: '0'}, 400);
            }
        );
    }
);
